home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Utilities Professional 1-1500
/
Utilities Professional 1-1500 (1994)(WPD)[!].iso
/
12511500
/
var1470.dms
/
var1470.adf
/
alerttimer
/
AlertTimer.asm
< prev
next >
Wrap
Assembly Source File
|
1993-01-10
|
3KB
|
86 lines
*************************************
* AlertTimer - alert timing utility *
* (C) SinSoft 1993 *
*************************************
;Include files not needed to assembly this program
;Use almost any 68K assembler
move.l 4.w,a6 ;get execbase
cmpi.w #39,$14(a6) ;LIB_VERSION compared
bcs.s failure ;we aren't running under 3.0
moveq #4,d0 ;dos.library tag number
jsr -810(a6) ;OpenTaggedLibrary function called
move.l a6,a5 ;execbase stored
move.l d0,a6 ;dos will be used
tst.l d0
bne.s dosok ;library opened OK
failure moveq #20,d0 ;return code
rts ;bye
dosok clr.l -(sp)
clr.l -(sp) ;workspace on the stack made
lea intemp(pc),a0 ;input template addr
move.l a0,d1 ;to be pc-relative
move.l sp,d2 ;our space
clr.l d3
jsr -$31e(a6) ;ReadArgs function called
move.l d0,d7 ;remeber this to free args later
bne.s ok ;Arguments ok
jsr -132(a6) ;IoErr function called - error determined
move.l d0,d1 ;error code
move.l d3,d2
jsr -$1da(a6) ;PrintFault function called
bra.s clodos ;we can't do anything more
ok lea primes(pc),a1 ;address of primary message
move.l a1,d1 ;to be PC-relative
jsr -$3ba(a6) ;Printf function called
lea $20e(a5),a3 ;address of timing variable
clr.w d6
move.b $212(a5),d6 ;VBlank frequency as a word fetched
tst.l (sp)
beq.s nonum ;timing value not specified
move.l (sp),a1 ;Address of the value
move.l (a1),d0 ;Value itself
move.l d0,(sp) ;stored for the message
mulu d6,d0 ;multiplied by VBlank
move.l d0,(a3) ;and stored to execbase for use by Alert()
printit lea curmes(pc),a1 ;message address
print2 move.l a1,d1 ;to be pc-relative
move.l sp,d2 ;arguments
jsr -$3ba(a6) ;Printf function called
move.l d7,d1 ;Argument address
jsr -$35a(a6) ;FreeArgs function called
clodos move.l a6,a1 ;dosbase as an argument to CloseLibrary()
move.l a5,a6 ;execbase reactivated
jsr -414(a6) ;CloseLibrary function called
moveq #0,d0
lea 8(sp),sp ;space discarded
rts
nonum tst.l 4(sp)
beq.s query ;OFF switch unspecified
moveq #-1,d0
move.l d0,(a3) ;store -1 as an OFF value
turnof lea curmes2(pc),a1 ;message address
bra.s print2
query move.l (a3),d0 ;get current value
addq.l #1,d0
beq.s turnof ;it is -1 - tell it
subq.l #1,d0
divu d6,d0 ;convert to seconds
andi.l #$ffff,d0 ;ignore remainder
move.l d0,(sp) ;store the value
bra.s printit
intemp dc.b 'TIMING/N,OFF/S',0
primes dc.b 'Alert timing is ',0
curmes dc.b 'set to %ld seconds.',10,0
curmes2 dc.b 'turned off.',10,0
dc.b '$VER: alerttimer 39.1 (10.1.93)',0
end